import { axios, PostData, FileData } from 'taro-axios'
import Taro from '@tarojs/taro'
import { log } from 'console';

axios.defaults.baseURL ='http://localhost:9101';


// 请求拦截器
axios.interceptors.request.use((config) => {
  // 设置加载画面
  Taro.showLoading({ title: '加载中...' })
  setTimeout(function () {
    Taro.hideLoading()
  }, 1000)
  // 本地获取token
  const token = Taro.getStorageSync('token')
  console.log(token)
  config.headers.token = token
  return config
})
// 回归拦截器
axios.interceptors.response.use(
  (res) => {
    // 存token
    // 鉴权拦截器
    if (res.data.status == 6004) {
      Taro.hideLoading()
      Taro.showModal({
        title: '权限校验失败',
        content: res.data.msg,
        success: (res) => {
          if (res.confirm) {
            Taro.setStorageSync('token', '')
            Taro.navigateTo({
              url: '/pages/login/index',
            })
          }
        },
      })
    }
    if (res.data.status == 6005) {
      Taro.hideLoading()
      Taro.showModal({
        title: '权限校验失败',
        content: res.data.msg,

      })
    }
    return res
  },
  // 错误拦截器
  (err) => {
    Taro.hideLoading()
    Taro.showModal({
      title: '网络延迟请刷新',
      content: err.message,
    })
  }
  // 放行
)
// 错误拦截器

// 上传图片
async function uploadImage(url: string) {
  const { tempFilePaths } = await Taro.chooseImage({ count: 1 })
  Taro.showLoading({ title: '图片上传中...' })
  const res = await axios.post(
    url,
    new PostData({
      smfile: new FileData(tempFilePaths[0]),
      ssl: true,
      format: 'json',
    }),
  )
  Taro.hideLoading()
  Taro.showModal({
    title: '返回结果',
    content: JSON.stringify(res.data),
  })
  return res;
}
// get
async function get(url: string, data: any) {
  const res = await axios.get(url, data)
  // Taro.showModal({
  //   title: '返回结果',
  //   content: JSON.stringify(res.data),
  // })
  return res;
}
// post
async function post(url: string, data: any) {
  const res = await axios.post(url, data)
  console.log(res)
  return res;
}

export { uploadImage, get, post }
